package com.ilink.groundservice.service.AiX;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ilink.groundservice.entity.PO.AiX.AiXSceneBase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ilink.groundservice.entity.PO.AiX.AiXSceneBeginEnd;
import com.ilink.groundservice.entity.VO.AiX.AiXSceneResponse;
import com.ilink.ilinkapi.dto.ground.AiX.AiXAreaFilterRequest;
import com.ilink.ilinkapi.dto.ground.AiX.AiXSceneBaseUpdateRequest;
import com.ilink.ilinkapi.dto.ground.AiX.AiXSceneCardInsertRequest;
import com.ilink.ilinkapi.dto.ground.AiX.AiXSceneCardUpdateRequest;
import com.ilink.ilinkcommon.domain.R;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;

/**
* @author Zhangbo
* @description 针对微场景的增删改查
* @createDate 2025-01-15 10:21:24
*/
public interface AiXSceneService extends IService<AiXSceneBase> {
    IPage<AiXSceneResponse> getScenes(AiXAreaFilterRequest request, String userId);
    AiXSceneResponse getSceneById(Long sceneId);
    R insertScene(String userId, AiXSceneCardInsertRequest request);
    R updateSceneCard(AiXSceneCardUpdateRequest request);
    R updateSceneCover(MultipartFile file, Long sceneId, Long areaId);
    R updateSceneBase(AiXSceneBaseUpdateRequest request);

    List<String> getSceneTags(Long areaId);
    void deleteScene(Long sceneId);
    R togglePublishStatus(Long sceneId);
    R getScenePublish(Long sceneId);

    R updateStartLearnAndSignUp(Long sceneId, String userId);
    List<AiXSceneBeginEnd> getSceneBeginEndRecords(Long sceneId);
    
    String getSceneAgentUrl(Long sceneId);
    String addSceneAgentUrl(Long sceneId, String agentUrl);
    String updateSceneAgentUrl(Long sceneId, String agentUrl);
}
